package com.government.tag.service;

import java.util.List;

import com.government.common.core.domain.BaseTreeVo;
import com.government.tag.domain.TagType;
import com.government.tag.vo.TagTypeVO;

/**
 * 标签类型Service接口
 * 
 * @author system
 * @date 2023-09-13
 */
public interface ITagTypeService 
{
    /**
     * 查询标签类型
     * 
     * @param tagTypeId 标签类型主键
     * @return 标签类型
     */
    public TagType selectTagTypeByTagTypeId(Long tagTypeId);

    /**
     * 查询标签类型列表
     * 
     * @param tagType 标签类型
     * @return 标签类型集合
     */
    public List<TagTypeVO> selectTagTypeList(TagType tagType);

    /**
     * 新增标签类型
     * 
     * @param tagType 标签类型
     * @return 结果
     */
    public int insertTagType(TagType tagType);

    /**
     * 修改标签类型
     * 
     * @param tagType 标签类型
     * @return 结果
     */
    public int updateTagType(TagType tagType);

    /**
     * 批量删除标签类型
     * 
     * @param tagTypeIds 需要删除的标签类型主键集合
     * @return 结果
     */
    public int deleteTagTypeByTagTypeIds(Long[] tagTypeIds);

    /**
     * 删除标签类型信息
     * 
     * @param tagTypeId 标签类型主键
     * @return 结果
     */
    public int deleteTagTypeByTagTypeId(Long tagTypeId);

    /**
     * 查询一级标签类型下拉列表
     * @return
     */
    List<TagType> selectFirstTagTypeList();

    /**
     * 查询标签类型树结构信息
     *
     * @return 部门树信息集合
     */
    List<BaseTreeVo> selectTagTypeTreeList();
}
